#include <iostream>
#include <algorithm>
#include <vector>
#include <unordered_map>

using namespace std;
//
//int longestConsecutive(vector<int>& nums) {
//    sort(nums.begin(), nums.end());
//
//    unordered_map<int, int> hash;
//    int ret = INT_MIN;
//    for (auto e : nums)
//    {
//        if (hash.count(e - 1))
//        {
//            hash[e] = hash[e - 1] + 1;
//        }
//        else
//        {
//            hash[e] = 1;
//        }
//        ret = max(ret, hash[e]);
//    }
//
//
//    return ret;
//}

int longestConsecutive(vector<int>& nums) {
    if (nums.size() < 1)
        return 0;

    sort(nums.begin(), nums.end());

    int ret = 1;
    int tmp = 1;
    for (int i = 1; i < nums.size(); ++i)
    {
        if (nums[i - 1] == nums[i] - 1)
            ++tmp;
        else
            tmp = 1;
        ret = max(tmp, ret);
    }


    return ret;
}

int main()
{
    vector<int> arr = { 100,4,200,1,3,2 };
    longestConsecutive(arr);
	return 0;
}